#ifndef DEQUEPERSISTENT_H_
#define DEQUEPERSISTENT_H_

#include "../../common/fuentes/Persistent.h"
#include <deque>

class DequePersistent
{

public:
	DequePersistent();
	DequePersistent(const DequePersistent& right);
	virtual ~DequePersistent();
	void insertSort(Persistent* object);
	int getSize();
	std::string getAtributte();
	Persistent* getPersistent(int i);
	void setAtributte(std::string at);
	Persistent* getFirst();
	Persistent* getLast();
	bool is(Persistent* object);
	void sort(std::string newAtributte);
	
	const DequePersistent &operator=(const DequePersistent &right);

	bool operator()(Persistent *left, Persistent *rigth);
	
	void clear();
	void popFront();
	void popBack();
	int indexOf(Persistent* object);
	
private:
	std::string atributte;
	int size;
	std::string newSortedAtributte;
	std::deque<Persistent*> dqPersistent;
	
	bool Compare(Persistent *left, Persistent *rigth);
	
	
	
};

#endif /*DEQUEPERSISTENT_H_*/
